home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / PInterfaces / Windows.p < prev    next >
Text File  |  1996-05-01  |  18KB  |  593 lines

  1. {
  2.      File:        Windows.p
  3.  
  4.      Contains:    Window Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Windows;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __WINDOWS__}
  28. {$SETC __WINDOWS__ := 1}
  29.  
  30. {$I+}
  31. {$SETC WindowsIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __MEMORY__}
  38. {$I Memory.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __QUICKDRAW__}
  41. {$I Quickdraw.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __EVENTS__}
  44. {$I Events.p}
  45. {$ENDC}
  46. {$IFC UNDEFINED __CONTROLS__}
  47. {$I Controls.p}
  48. {$ENDC}
  49. {$IFC UNDEFINED __HIWINDOWTYPES__}
  50. {$I HIWindowTypes.p}
  51. {$ENDC}
  52.  
  53. {$PUSH}
  54. {$ALIGN MAC68K}
  55. {$LibExport+}
  56.  
  57. {$IFC FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED }
  58. {
  59. _________________________________________________________________________________________________________
  60.     
  61.  * WINDOW DEFINITION TYPE
  62. _________________________________________________________________________________________________________
  63. }
  64.  
  65. CONST
  66.     kWindowDefProcType            = 'WDEF';
  67.  
  68. {
  69. _________________________________________________________________________________________________________
  70.     
  71.  * WINDOW DEFINITION ID'S
  72. _________________________________________________________________________________________________________
  73. }
  74.     kStandardWindowDefinition    = 0;                            {  for document windows and dialogs }
  75.     kRoundWindowDefinition        = 1;                            {  old da-style window }
  76.     kFloatingWindowDefinition    = 124;                            {  for floating windows }
  77.  
  78. {
  79. _________________________________________________________________________________________________________
  80.     
  81.  * VARIANT CODES
  82. _________________________________________________________________________________________________________
  83. }
  84.                                                                 {  for use with kStandardWindowDefinition  }
  85.     kDocumentWindowVariantCode    = 0;
  86.     kModalDialogVariantCode        = 1;
  87.     kPlainDialogVariantCode        = 2;
  88.     kShadowDialogVariantCode    = 3;
  89.     kMovableModalDialogVariantCode = 5;
  90.     kAlertVariantCode            = 7;
  91.     kMovableAlertVariantCode    = 9;                            {  for use with kFloatingWindowDefinition  }
  92.     kSideFloaterVariantCode        = 8;
  93.  
  94. {
  95. _________________________________________________________________________________________________________
  96.     
  97.  * PROC-ID'S
  98. _________________________________________________________________________________________________________
  99. }
  100.     documentProc                = 0;
  101.     dBoxProc                    = 1;
  102.     plainDBox                    = 2;
  103.     altDBoxProc                    = 3;
  104.     noGrowDocProc                = 4;
  105.     movableDBoxProc                = 5;
  106.     zoomDocProc                    = 8;
  107.     zoomNoGrow                    = 12;
  108.     rDocProc                    = 16;                            {  floating window defproc ids  }
  109.     floatProc                    = 1985;
  110.     floatGrowProc                = 1987;
  111.     floatZoomProc                = 1989;
  112.     floatZoomGrowProc            = 1991;
  113.     floatSideProc                = 1993;
  114.     floatSideGrowProc            = 1995;
  115.     floatSideZoomProc            = 1997;
  116.     floatSideZoomGrowProc        = 1999;
  117.  
  118. {
  119. _________________________________________________________________________________________________________
  120.     
  121.  * STANDARD WINDOW KINDS
  122. _________________________________________________________________________________________________________
  123. }
  124.     dialogKind                    = 2;
  125.     userKind                    = 8;
  126.     kDialogWindowKind            = 2;
  127.     kApplicationWindowKind        = 8;
  128.  
  129. {
  130. _________________________________________________________________________________________________________
  131.     
  132.  * FIND WINDOW RESULT CODES
  133. _________________________________________________________________________________________________________
  134. }
  135.     inDesk                        = 0;
  136.     inNoWindow                    = 0;
  137.     inMenuBar                    = 1;
  138.     inSysWindow                    = 2;
  139.     inContent                    = 3;
  140.     inDrag                        = 4;
  141.     inGrow                        = 5;
  142.     inGoAway                    = 6;
  143.     inZoomIn                    = 7;
  144.     inZoomOut                    = 8;
  145.  
  146.     wDraw                        = 0;
  147.     wHit                        = 1;
  148.     wCalcRgns                    = 2;
  149.     wNew                        = 3;
  150.     wDispose                    = 4;
  151.     wGrow                        = 5;
  152.     wDrawGIcon                    = 6;
  153.  
  154.     deskPatID                    = 16;
  155.  
  156. {
  157. _________________________________________________________________________________________________________
  158.     
  159.  * WINDOW DEFINITION HIT TEST RESULT CODES ("WINDOW PART")
  160. _________________________________________________________________________________________________________
  161. }
  162.     wNoHit                        = 0;
  163.     wInContent                    = 1;
  164.     wInDrag                        = 2;
  165.     wInGrow                        = 3;
  166.     wInGoAway                    = 4;
  167.     wInZoomIn                    = 5;
  168.     wInZoomOut                    = 6;
  169.  
  170. {
  171. _________________________________________________________________________________________________________
  172.     
  173.  * WINDOW COLOR PART CODES
  174. _________________________________________________________________________________________________________
  175. }
  176.     wContentColor                = 0;
  177.     wFrameColor                    = 1;
  178.     wTextColor                    = 2;
  179.     wHiliteColor                = 3;
  180.     wTitleBarColor                = 4;
  181.  
  182. {
  183. _________________________________________________________________________________________________________
  184.  * WINDOW COLOR TABLE STRUCTURE
  185. _________________________________________________________________________________________________________
  186. }
  187.  
  188. TYPE
  189.     WinCTabPtr = ^WinCTab;
  190.     WinCTab = RECORD
  191.         wCSeed:                    LONGINT;                                {  reserved  }
  192.         wCReserved:                INTEGER;                                {  reserved  }
  193.         ctSize:                    INTEGER;                                {  usually 4 for windows  }
  194.         ctTable:                ARRAY [0..4] OF ColorSpec;
  195.     END;
  196.  
  197.     WCTabPtr                            = ^WinCTab;
  198.     WCTabHandle                            = ^WCTabPtr;
  199. {
  200. _________________________________________________________________________________________________________
  201.  * WINDOWRECORD
  202. _________________________________________________________________________________________________________
  203. }
  204.     WindowRecordPtr = ^WindowRecord;
  205.     WindowPeek                            = ^WindowRecord;
  206.     WindowRecord = RECORD
  207.         port:                    GrafPort;
  208.         windowKind:                INTEGER;
  209.         visible:                BOOLEAN;
  210.         hilited:                BOOLEAN;
  211.         goAwayFlag:                BOOLEAN;
  212.         spareFlag:                BOOLEAN;
  213.         strucRgn:                RgnHandle;
  214.         contRgn:                RgnHandle;
  215.         updateRgn:                RgnHandle;
  216.         windowDefProc:            Handle;
  217.         dataHandle:                Handle;
  218.         titleHandle:            StringHandle;
  219.         titleWidth:                INTEGER;
  220.         controlList:            ControlHandle;
  221.         nextWindow:                WindowPeek;
  222.         windowPic:                PicHandle;
  223.         refCon:                    LONGINT;
  224.     END;
  225.  
  226. {
  227. _________________________________________________________________________________________________________
  228.  * CWINDOWRECORD
  229. _________________________________________________________________________________________________________
  230. }
  231.     CWindowRecordPtr = ^CWindowRecord;
  232.     CWindowPeek                            = ^CWindowRecord;
  233.     CWindowRecord = RECORD
  234.         port:                    CGrafPort;
  235.         windowKind:                INTEGER;
  236.         visible:                BOOLEAN;
  237.         hilited:                BOOLEAN;
  238.         goAwayFlag:                BOOLEAN;
  239.         spareFlag:                BOOLEAN;
  240.         strucRgn:                RgnHandle;
  241.         contRgn:                RgnHandle;
  242.         updateRgn:                RgnHandle;
  243.         windowDefProc:            Handle;
  244.         dataHandle:                Handle;
  245.         titleHandle:            StringHandle;
  246.         titleWidth:                INTEGER;
  247.         controlList:            ControlHandle;
  248.         nextWindow:                CWindowPeek;
  249.         windowPic:                PicHandle;
  250.         refCon:                    LONGINT;
  251.     END;
  252.  
  253. {
  254. _________________________________________________________________________________________________________
  255.  * AUXWINDHANDLE
  256. _________________________________________________________________________________________________________
  257. }
  258.     AuxWinRecPtr = ^AuxWinRec;
  259.     AuxWinPtr                            = ^AuxWinRec;
  260.     AuxWinHandle                        = ^AuxWinPtr;
  261.     AuxWinRec = RECORD
  262.         awNext:                    AuxWinHandle;                            { handle to next AuxWinRec }
  263.         awOwner:                WindowPtr;                                { ptr to window  }
  264.         awCTable:                CTabHandle;                                { color table for this window }
  265.         reserved:                Handle;
  266.         awFlags:                LONGINT;                                { reserved for expansion }
  267.         awReserved:                CTabHandle;                                { reserved for expansion }
  268.         awRefCon:                LONGINT;                                { user Constant }
  269.     END;
  270.  
  271. {
  272. _________________________________________________________________________________________________________
  273.  * WSTATEHANDLE
  274. _________________________________________________________________________________________________________
  275. }
  276.     WStateDataPtr = ^WStateData;
  277.     WStateData = RECORD
  278.         userState:                Rect;                                    { user state }
  279.         stdState:                Rect;                                    { standard state }
  280.     END;
  281.  
  282.     WStateDataHandle                    = ^WStateDataPtr;
  283. {
  284. _________________________________________________________________________________________________________
  285.     
  286.  * API
  287. _________________________________________________________________________________________________________
  288. }
  289. PROCEDURE InitWindows;
  290.     {$IFC NOT GENERATINGCFM}
  291.     INLINE $A912;
  292.     {$ENDC}
  293. FUNCTION NewWindow(wStorage: UNIV Ptr; {CONST}VAR boundsRect: Rect; title: Str255; visible: BOOLEAN; theProc: INTEGER; behind: WindowPtr; goAwayFlag: BOOLEAN; refCon: LONGINT): WindowPtr;
  294.     {$IFC NOT GENERATINGCFM}
  295.     INLINE $A913;
  296.     {$ENDC}
  297. FUNCTION GetNewWindow(windowID: INTEGER; wStorage: UNIV Ptr; behind: WindowPtr): WindowPtr;
  298.     {$IFC NOT GENERATINGCFM}
  299.     INLINE $A9BD;
  300.     {$ENDC}
  301. FUNCTION NewCWindow(wStorage: UNIV Ptr; {CONST}VAR boundsRect: Rect; title: Str255; visible: BOOLEAN; procID: INTEGER; behind: WindowPtr; goAwayFlag: BOOLEAN; refCon: LONGINT): WindowPtr;
  302.     {$IFC NOT GENERATINGCFM}
  303.     INLINE $AA45;
  304.     {$ENDC}
  305. PROCEDURE DisposeWindow(theWindow: WindowPtr);
  306.     {$IFC NOT GENERATINGCFM}
  307.     INLINE $A914;
  308.     {$ENDC}
  309. PROCEDURE CloseWindow(theWindow: WindowPtr);
  310.     {$IFC NOT GENERATINGCFM}
  311.     INLINE $A92D;
  312.     {$ENDC}
  313. PROCEDURE InvalRect({CONST}VAR badRect: Rect);
  314.     {$IFC NOT GENERATINGCFM}
  315.     INLINE $A928;
  316.     {$ENDC}
  317. PROCEDURE InvalRgn(badRgn: RgnHandle);
  318.     {$IFC NOT GENERATINGCFM}
  319.     INLINE $A927;
  320.     {$ENDC}
  321. PROCEDURE ValidRect({CONST}VAR goodRect: Rect);
  322.     {$IFC NOT GENERATINGCFM}
  323.     INLINE $A92A;
  324.     {$ENDC}
  325. PROCEDURE ValidRgn(goodRgn: RgnHandle);
  326.     {$IFC NOT GENERATINGCFM}
  327.     INLINE $A929;
  328.     {$ENDC}
  329. FUNCTION CheckUpdate(VAR theEvent: EventRecord): BOOLEAN;
  330.     {$IFC NOT GENERATINGCFM}
  331.     INLINE $A911;
  332.     {$ENDC}
  333. PROCEDURE ClipAbove(window: WindowPtr);
  334.     {$IFC NOT GENERATINGCFM}
  335.     INLINE $A90B;
  336.     {$ENDC}
  337. PROCEDURE SaveOld(window: WindowPtr);
  338.     {$IFC NOT GENERATINGCFM}
  339.     INLINE $A90E;
  340.     {$ENDC}
  341. PROCEDURE DrawNew(window: WindowPtr; update: BOOLEAN);
  342.     {$IFC NOT GENERATINGCFM}
  343.     INLINE $A90F;
  344.     {$ENDC}
  345. PROCEDURE PaintOne(window: WindowPtr; clobberedRgn: RgnHandle);
  346.     {$IFC NOT GENERATINGCFM}
  347.     INLINE $A90C;
  348.     {$ENDC}
  349. PROCEDURE PaintBehind(startWindow: WindowPtr; clobberedRgn: RgnHandle);
  350.     {$IFC NOT GENERATINGCFM}
  351.     INLINE $A90D;
  352.     {$ENDC}
  353. PROCEDURE CalcVis(window: WindowPtr);
  354.     {$IFC NOT GENERATINGCFM}
  355.     INLINE $A909;
  356.     {$ENDC}
  357. PROCEDURE CalcVisBehind(startWindow: WindowPtr; clobberedRgn: RgnHandle);
  358.     {$IFC NOT GENERATINGCFM}
  359.     INLINE $A90A;
  360.     {$ENDC}
  361. PROCEDURE SetWinColor(theWindow: WindowPtr; newColorTable: WCTabHandle);
  362.     {$IFC NOT GENERATINGCFM}
  363.     INLINE $AA41;
  364.     {$ENDC}
  365. PROCEDURE SetDeskCPat(deskPixPat: PixPatHandle);
  366.     {$IFC NOT GENERATINGCFM}
  367.     INLINE $AA47;
  368.     {$ENDC}
  369. FUNCTION GetNewCWindow(windowID: INTEGER; wStorage: UNIV Ptr; behind: WindowPtr): WindowPtr;
  370.     {$IFC NOT GENERATINGCFM}
  371.     INLINE $AA46;
  372.     {$ENDC}
  373. PROCEDURE SetWTitle(theWindow: WindowPtr; title: Str255);
  374.     {$IFC NOT GENERATINGCFM}
  375.     INLINE $A91A;
  376.     {$ENDC}
  377. PROCEDURE GetWTitle(theWindow: WindowPtr; VAR title: Str255);
  378.     {$IFC NOT GENERATINGCFM}
  379.     INLINE $A919;
  380.     {$ENDC}
  381. PROCEDURE GetWMgrPort(VAR wPort: GrafPtr);
  382.     {$IFC NOT GENERATINGCFM}
  383.     INLINE $A910;
  384.     {$ENDC}
  385. PROCEDURE GetCWMgrPort(VAR wMgrCPort: CGrafPtr);
  386.     {$IFC NOT GENERATINGCFM}
  387.     INLINE $AA48;
  388.     {$ENDC}
  389. PROCEDURE SetWRefCon(theWindow: WindowPtr; data: LONGINT);
  390.     {$IFC NOT GENERATINGCFM}
  391.     INLINE $A918;
  392.     {$ENDC}
  393. FUNCTION GetWRefCon(theWindow: WindowPtr): LONGINT;
  394.     {$IFC NOT GENERATINGCFM}
  395.     INLINE $A917;
  396.     {$ENDC}
  397. PROCEDURE SelectWindow(theWindow: WindowPtr);
  398.     {$IFC NOT GENERATINGCFM}
  399.     INLINE $A91F;
  400.     {$ENDC}
  401. PROCEDURE HideWindow(theWindow: WindowPtr);
  402.     {$IFC NOT GENERATINGCFM}
  403.     INLINE $A916;
  404.     {$ENDC}
  405. PROCEDURE ShowWindow(theWindow: WindowPtr);
  406.     {$IFC NOT GENERATINGCFM}
  407.     INLINE $A915;
  408.     {$ENDC}
  409. PROCEDURE ShowHide(theWindow: WindowPtr; showFlag: BOOLEAN);
  410.     {$IFC NOT GENERATINGCFM}
  411.     INLINE $A908;
  412.     {$ENDC}
  413. PROCEDURE HiliteWindow(theWindow: WindowPtr; fHilite: BOOLEAN);
  414.     {$IFC NOT GENERATINGCFM}
  415.     INLINE $A91C;
  416.     {$ENDC}
  417. PROCEDURE BringToFront(theWindow: WindowPtr);
  418.     {$IFC NOT GENERATINGCFM}
  419.     INLINE $A920;
  420.     {$ENDC}
  421. PROCEDURE SendBehind(theWindow: WindowPtr; behindWindow: WindowPtr);
  422.     {$IFC NOT GENERATINGCFM}
  423.     INLINE $A921;
  424.     {$ENDC}
  425. FUNCTION FrontWindow: WindowPtr;
  426.     {$IFC NOT GENERATINGCFM}
  427.     INLINE $A924;
  428.     {$ENDC}
  429. PROCEDURE DrawGrowIcon(theWindow: WindowPtr);
  430.     {$IFC NOT GENERATINGCFM}
  431.     INLINE $A904;
  432.     {$ENDC}
  433. PROCEDURE MoveWindow(theWindow: WindowPtr; hGlobal: INTEGER; vGlobal: INTEGER; front: BOOLEAN);
  434.     {$IFC NOT GENERATINGCFM}
  435.     INLINE $A91B;
  436.     {$ENDC}
  437. PROCEDURE SizeWindow(theWindow: WindowPtr; w: INTEGER; h: INTEGER; fUpdate: BOOLEAN);
  438.     {$IFC NOT GENERATINGCFM}
  439.     INLINE $A91D;
  440.     {$ENDC}
  441. PROCEDURE ZoomWindow(theWindow: WindowPtr; partCode: INTEGER; front: BOOLEAN);
  442.     {$IFC NOT GENERATINGCFM}
  443.     INLINE $A83A;
  444.     {$ENDC}
  445. PROCEDURE BeginUpdate(theWindow: WindowPtr);
  446.     {$IFC NOT GENERATINGCFM}
  447.     INLINE $A922;
  448.     {$ENDC}
  449. PROCEDURE EndUpdate(theWindow: WindowPtr);
  450.     {$IFC NOT GENERATINGCFM}
  451.     INLINE $A923;
  452.     {$ENDC}
  453. PROCEDURE SetWindowPic(theWindow: WindowPtr; pic: PicHandle);
  454.     {$IFC NOT GENERATINGCFM}
  455.     INLINE $A92E;
  456.     {$ENDC}
  457. FUNCTION GetWindowPic(theWindow: WindowPtr): PicHandle;
  458.     {$IFC NOT GENERATINGCFM}
  459.     INLINE $A92F;
  460.     {$ENDC}
  461. FUNCTION GrowWindow(theWindow: WindowPtr; startPt: Point; {CONST}VAR bBox: Rect): LONGINT;
  462.     {$IFC NOT GENERATINGCFM}
  463.     INLINE $A92B;
  464.     {$ENDC}
  465. FUNCTION FindWindow(thePoint: Point; VAR theWindow: WindowPtr): INTEGER;
  466.     {$IFC NOT GENERATINGCFM}
  467.     INLINE $A92C;
  468.     {$ENDC}
  469. FUNCTION PinRect({CONST}VAR theRect: Rect; thePt: Point): LONGINT;
  470.     {$IFC NOT GENERATINGCFM}
  471.     INLINE $A94E;
  472.     {$ENDC}
  473. FUNCTION DragGrayRgn(theRgn: RgnHandle; startPt: Point; {CONST}VAR limitRect: Rect; {CONST}VAR slopRect: Rect; axis: INTEGER; actionProc: DragGrayRgnUPP): LONGINT;
  474.     {$IFC NOT GENERATINGCFM}
  475.     INLINE $A905;
  476.     {$ENDC}
  477. FUNCTION DragTheRgn(theRgn: RgnHandle; startPt: Point; {CONST}VAR limitRect: Rect; {CONST}VAR slopRect: Rect; axis: INTEGER; actionProc: DragGrayRgnUPP): LONGINT;
  478.     {$IFC NOT GENERATINGCFM}
  479.     INLINE $A926;
  480.     {$ENDC}
  481. FUNCTION TrackBox(theWindow: WindowPtr; thePt: Point; partCode: INTEGER): BOOLEAN;
  482.     {$IFC NOT GENERATINGCFM}
  483.     INLINE $A83B;
  484.     {$ENDC}
  485. FUNCTION TrackGoAway(theWindow: WindowPtr; thePt: Point): BOOLEAN;
  486.     {$IFC NOT GENERATINGCFM}
  487.     INLINE $A91E;
  488.     {$ENDC}
  489. PROCEDURE DragWindow(theWindow: WindowPtr; startPt: Point; {CONST}VAR boundsRect: Rect);
  490.     {$IFC NOT GENERATINGCFM}
  491.     INLINE $A925;
  492.     {$ENDC}
  493. FUNCTION GetWVariant(theWindow: WindowPtr): INTEGER;
  494.     {$IFC NOT GENERATINGCFM}
  495.     INLINE $A80A;
  496.     {$ENDC}
  497. FUNCTION GetAuxWin(theWindow: WindowPtr; VAR awHndl: AuxWinHandle): BOOLEAN;
  498.     {$IFC NOT GENERATINGCFM}
  499.     INLINE $AA42;
  500.     {$ENDC}
  501. FUNCTION GetGrayRgn: RgnHandle;
  502.     {$IFC NOT GENERATINGCFM}
  503.     INLINE $2EB8, $09EE;
  504.     {$ENDC}
  505. {
  506. _________________________________________________________________________________________________________
  507.     
  508.  * PROCS
  509. _________________________________________________________________________________________________________
  510. }
  511.  
  512. TYPE
  513.     WindowDefProcPtr = ProcPtr;  { FUNCTION WindowDef(varCode: INTEGER; theWindow: WindowPtr; message: INTEGER; param: LONGINT): LONGINT; }
  514.  
  515.     DeskHookProcPtr = Register68kProcPtr;  { PROCEDURE DeskHook(mouseClick: BOOLEAN; VAR theEvent: EventRecord); }
  516.  
  517.     WindowDefUPP = UniversalProcPtr;
  518.     DeskHookUPP = UniversalProcPtr;
  519.  
  520. CONST
  521.     uppWindowDefProcInfo = $00003BB0;
  522.     uppDeskHookProcInfo = $00130802;
  523.  
  524. FUNCTION NewWindowDefProc(userRoutine: WindowDefProcPtr): WindowDefUPP;
  525.     {$IFC NOT GENERATINGCFM }
  526.     INLINE $2E9F;
  527.     {$ENDC}
  528.  
  529. FUNCTION NewDeskHookProc(userRoutine: DeskHookProcPtr): DeskHookUPP;
  530.     {$IFC NOT GENERATINGCFM }
  531.     INLINE $2E9F;
  532.     {$ENDC}
  533.  
  534. FUNCTION CallWindowDefProc(varCode: INTEGER; theWindow: WindowPtr; message: INTEGER; param: LONGINT; userRoutine: WindowDefUPP): LONGINT;
  535.     {$IFC NOT GENERATINGCFM}
  536.     INLINE $205F, $4E90;
  537.     {$ENDC}
  538.  
  539. PROCEDURE CallDeskHookProc(mouseClick: BOOLEAN; VAR theEvent: EventRecord; userRoutine: DeskHookUPP);
  540.     {$IFC NOT GENERATINGCFM}
  541.     {To be implemented:  Glue to move parameters into registers.}
  542.     {$ENDC}
  543. {
  544. _________________________________________________________________________________________________________
  545.     
  546.  * C GLUE
  547. _________________________________________________________________________________________________________
  548. }
  549. {
  550. _________________________________________________________________________________________________________
  551.     
  552.  * WindowRecord accessor macros
  553. _________________________________________________________________________________________________________
  554. }
  555. {
  556. *****************************************************************************
  557. *                                                                           *
  558. * The conditional STRICT_WINDOWS has been removed from this interface file. *
  559. * The accessor macros to a WindowRecord are no longer necessary.            *
  560. *                                                                           *
  561. *****************************************************************************
  562.  
  563. Details:
  564. The original purpose of the STRICT_ conditionals and accessor macros was to
  565. help ease the transition to Copland.   Shared data structures are difficult
  566. to coordinate in a preemptive multitasking OS.  By hiding the fields in a
  567. WindowRecord and other data structures, we would begin the migration to 
  568. system data structures being completely hidden from applications. 
  569.  
  570. After many design reviews, it was finally concluded that with this sort of
  571. migration, the system could never tell when an application was no longer 
  572. peeking at a WindowRecord, and thus the data structure might never become 
  573. system owned.  Additionally, there were many other limitations in the classic
  574. toolbox that were begging to be addressed.
  575.  
  576. The final decision was to leave the traditional toolbox as a compatibility mode.
  577. The preferred toolbox API for Copland is a new SOM(tm) based architecture 
  578. (e.g. HIWindows.idl).  Windows, menu, controls, etc are each a SOM object 
  579. with methods for drawing, event handling, and customization.
  580.  
  581. }
  582. {$ENDC}
  583. {$ALIGN RESET}
  584. {$POP}
  585.  
  586. {$SETC UsingIncludes := WindowsIncludes}
  587.  
  588. {$ENDC} {__WINDOWS__}
  589.  
  590. {$IFC NOT UsingIncludes}
  591.  END.
  592. {$ENDC}
  593.